/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.utfpr.dao;

import java.util.List;
import javax.persistence.EntityManager;
import pojo.Produto;

public class DaoProduto {

    public DaoProduto() {
    }

    public Produto salvar(Produto produto) {
        EntityManager entityManager = Conexao.getInstance().createEntityManager();

        entityManager.getTransaction().begin();

        produto = entityManager.merge(produto);

        entityManager.getTransaction().commit();

        entityManager.close();

        return produto;
    }
    
    public void excluir(Long id) throws Exception{
        EntityManager entityManager = Conexao.getInstance().createEntityManager();
        entityManager.getTransaction().begin();
        Produto p = entityManager.find(Produto.class, id);

        try {
            if(p != null)
                entityManager.remove(p);
            else
               throw new Exception("O registro não existe mais, tente reconsultá-lo."); 
        } catch (Exception e) {
            if (e.getMessage().contains("Code: 1451")) {
                throw new Exception("Registro utilizado em outra tabela.");
            } else {
                throw new Exception("Erro desconhecido ao excluir.");
            }
        }
        
        entityManager.getTransaction().commit();

        entityManager.close();
    }
    
    public List<Produto> pesquisarPorNome(String descricao){
        EntityManager entityManager = Conexao.getInstance().createEntityManager();
        List<Produto> lista = entityManager.createQuery("select p from Produto p where p.descricao like '%"+descricao+"%'").getResultList();
        System.out.println(lista.toString());
        return lista;
    }
}
